package com.github.tetrisgame.ui.view

/**
 * kotlin中创建对象顺序
 * 调用构造方法创建对象 -> 构建属性 -> init()方法 ->
 */
class Person {
    //延迟加载
    val address: String by lazy {
        ""
    }

    //延迟初始化
    lateinit var name: String

    var weight: Float = 0f
        set(value) {
            field = value
            //.....
        }
        get() {
            //...,,
            return field
        }

    fun test() {

        loadData(
            onSuccess = {

            },
            onFailured = { _, errCode ->

            })
    }

    /*
    函数的声明：test()
    函数的实现：{}
     */
    fun loadData(
        onSuccess: (String) -> Unit = {},
        onFailured: (String, Int) -> Unit = { _, _ -> }
    ) {
        //.....
        onSuccess("数据")

        onFailured("网络不行", 20)
    }
}

//普通函数： 里面 静态 实例
//高阶函数： 参数是函数类型
//顶层函数
fun test() {

}